let express = require("express");

let router = new express.Router();

const mysql = require("../../config/db.js");

const crypto = require('crypto');
// 导入moment模块
const moment = require("moment");

// 从数据库中查询数据
/**
 * 
 * @param {*} fn 传入处理回调函数，会将数据库结果传回,回调函数需定义result假参来接收数据库查询结果
 */
function queryData(fn) {
	if (fn) {
		mysql.query('select * from users', function (error, result) {
			// 判断是否执行成功
			if (error) {
				console.log(error);
			} else {
				// 加载页面
				fn(result);
			}
		})
	} else {

	}
}

// 管理员管理首页
router.get('/', function (req, res, next) {
	// 获取地址栏数据 req.query
	// 获取表单数据 req.body
	// res.send("管理员管理首页");
	queryData(function (result) {
		res.render('admin/admin/index.html', { search: req.query.search, data: result });
	});
});

// 管理员管理添加页面
router.get('/add', function (req, res, next) {
	// res.send("管理员管理添加页面");
	res.render('admin/admin/add.html');
	// 加载页面
});
// 管理员的添加功能
router.post("/add", function (req, res, next) {
	// 接受数据
	// req.body.username
	// req.body.password
	// 判断该用户名是否已经注册
	queryData(function (result) {
		// 1.遍历结果
		let flag = true;
		for (let i = 0; i < result.length; i++) {
			if (result[i].username == req.body.username) {
				flag = false;
				break;
			}
		}
		// 如果是true证明没有注册过，就执行往数据库添加操作
		if (flag) {
			// 没有注册，我们需要插入数据
			// 当前时间戳
			// 密码加密
			mysql.query('insert into users(username, password) value("' + req.body.username + '", "' + req.body.password + '")', function (error, result) {
				// 判断
				if (error) {
					console.log(error);
				} else {
					// 判断是否执行成
					if (result) {
						// res.json({
						// 	// 成功状态自定义为4
						// 	conde: '4',
						// 	msg: '添加成功'
						// })
						// res.redirect('./index.html');
						queryData(function (result) {
							res.render('admin/admin/index.html', { search: req.query.search, data: result });
						});

					}
				}
			})
		}
	});
});

// 无刷新修改状态
router.get("/ajax_status", function (req, res, next) {
	// 接受对应的数据
	// 修改数据
})
// 无刷新删除数据

// 管理员管理修改页面
router.get('/edit', function (req, res, next) {
	// 接受数据的ID,唯一标识，找到数据的指定行
	let id = req.query.id;
	// 查询对应数据
	mysql.query('select * from users where id=' + id, function (error, result) {
		// 判断是否执行成功
		if (error) {
			console.log(error);
		} else {
			// 判断是否成功
			// console.log(result);
			if (result) {
				res.render('admin/admin/edit.html', { data: result[0] });
			};
		};
	});
	// 判断
	// 加载修改页面
});

// 管理员数据修改功能
router.post("/edit", function (req, res, next) {
	// 接受表单提交的数据
	let id = req.body.id;
	let pw = req.body.password;
	mysql.query('select * from users where id=' + id, function (error, result) {
		// 判断是否执行成功
		if (error) {
			console.log(error);
		} else {
			// 判断是否成功
			// console.log(result);
			if (result) {
				if (result.password != pw) {
					// 判断该用户是否修改密码
					mysql.query('update users set password="' + pw + '" where id=' + id, function (error, result) {
						if (error) {
							console.log(error);
						} else {
							console.log(result);
							if (result) {
								queryData(function (result) {
									res.render('admin/admin/index.html', { search: req.query.search, data: result });
								});
							}
						}
					});
				}
			};
		};
	});
	// 密码加密
	// sql语句
	// sql语句
	// 执行sql语句
});
// ajax_del?id=26
router.get("/ajax_del", function (req, res, next) {
	// // 接受地址栏数据
	let id = req.query.id;
	// 删除数据
	mysql.query('delete from users where id=' + id, function (error, result) {
		if(error) {
			console.log(error);
		} else {
			// 判断是否执行成功
			if(result) {
				queryData(function (result) {
					res.render('admin/admin/index.html', { search: req.query.search, data: result });
				});
			}
		}
	})
})

module.exports = router;